package com.example.thread.base.a1b2c3;

import java.util.concurrent.atomic.AtomicInteger;

/**
 * @author LiYuhang
 * @version 0.1
 * @application
 * @Date 2021/6/28 12:19
 * @Description 使用原子类的方式打印
 */
public class Print_Atomic {
    //定义一个原子性的对象
    static AtomicInteger thredNo=new AtomicInteger(1);

    public static void main(String[] args) {
        char[] aI="1234567".toCharArray();
        char[] aC="ABCDEFG".toCharArray();
        new Thread(()->{
            for (char c : aC) {
                //如果不是1就一直返回空，直到运行打印，打印完之后把原子对象变成2
                while (thredNo.get()!=1){}
                System.out.println(c);
                thredNo.set(2);
            }
        },"t1").start();

        new Thread(()->{
            for (char c : aI) {
                //如果不是2就一直返回空，直到运行打印，打印完之后把原子对象变成1
                while (thredNo.get()!=2){}
                System.out.println(c);
                thredNo.set(1);
            }
        },"t1").start();

    }
}
